The number of input/output (I/O) standards keeps increasing with more power supplies, signaling levels, and drive strengths. Programmable devices need to support as many of these standards as possible with as little utilization of resources as possible in order to keep costs down and maintain a competitive advantage in the ever-changing marketplace. Ideally, a single programmable device can support multiple drive types at the same time at different I/O positions around the device.
PVT control refers to the ability of an integrated circuit (IC) to adjust one or more of its operating characteristics to compensate for process variations from chip to chip of a single IC design and for voltage and temperature variations over time within a single chip. Typical PVT control involves implementing special PVT-control circuitry within each chip that reacts to PVT variations within the PVT-control circuitry in order to generate control signals that adjust operations of other circuitry on the chip, with the assumption that the PVT variations in that other circuitry are the same as those that affect the PVT-control circuitry.
FIG. 1 shows a block diagram of a portion of a conventional integrated circuit 100 having a programmable output driver 102 whose operations are controlled, in part, by a PVT-control circuit 104. In this exemplary device, programmable output driver 102 is a push pull output buffer having (i) a source driver block 110 connected between a power supply VCCIO and an output pad 106 and (ii) a sink driver block 120 connected between output pad 106 and the ground potential. Source block 110 has a set of identical switched source sections 112 connected in parallel. Similarly, sink block 120 has a set of identical switched sink sections 122 connected in parallel. The term “switched” implies that the corresponding source/sink section can be selectively turned on or off.
Each source section 112 itself has a set of switched PFET resistors (not shown in FIG. 1) of different resistance levels connected in parallel. Similarly, each sink section 122 itself has a set of switched NFET resistors (not shown in FIG. 1) of different resistance levels connected in parallel.
In general, the PFETs in the source sections are much more sensitive to the power supply potential than are the NFETs in the sink sections. As the power supply voltage changes, the ratio between the effective PFET-based source block size and the effective NFET-based sink block size needs to be adjusted to maintain desired signaling characteristics of output driver 102.
PVT-control circuit 104 has (i) a source-control section 130 that is identical to each source section 112 in source block 110 of output driver 102 and (ii) a sink-control section 150 that is identical to each sink section 122 in sink block 120 of output driver 102.
In a typical implementation, PVT-control circuit 104 controls the configuration of each source section 112 and each sink section 122. In particular, based on the operating characteristics of source-control section 130, PVT-control circuit 104 determines and controls which resistors in each source section 112 are switched on to achieve an identical impedance level for all of the source sections 112. Similarly, based on the operating characteristics of sink-control section 150, PVT-control circuit 104 determines and controls which resistors in each sink section 122 are switched on to achieve an identical impedance level for all of the sink sections 122. In the particular implementation shown in FIG. 1, PVT-control circuit 104 configures (i.e., turns on or off) the switched resistors within each source section 112 and each sink section 122 such that all source/sink sections provide approximately the same resistance level (i.e., the same drive strength), e.g., nominally 100 ohms, under all PVT conditions.
The user of integrated circuit 100 controls the configuration of source block 110 to select which source sections 112 are switched on to achieve a desired source impedance level for a particular output driver application. Similarly, the user controls the configuration of sink block 120 to select which sink sections 122 are switched on to achieve a desired sink impedance level for that output driver application. The desired source and sink impedance levels correspond to a selected drive strength of the output driver application.
In the conventional embodiment of FIG. 1, PVT control of the source/sink sections is independent of the output driver application, and the configuration of source/sink sections for an output driver application is independent of the current PVT conditions.
For an exemplary implementation, in which each of source block 110 and sink block 120 has N identical sections, there are a maximum of (N+1) different impedance levels that can be made available to a user for each block (i.e., a first configuration in which all sections are off, a second configuration in which all but one of the sections are off, up to an (N+1)th configuration in which all sections are on). Since the selection of which resistors in each source/sink section are switched on is controlled by the PVT-control circuit 104, additional impedance levels based on configuring the resistors within individual source/sink sections cannot be made available to the user.
Furthermore, in a conventional programmable IC device that supports different I/O standards at the same time at different I/O positions around the device, each different I/O position around the device would be implemented with its own dedicated PVT-control circuitry. Moreover, in conventional implementation of IC 100 of FIG. 1, the power supply voltage selected for output driver 102 would also be used to drive PVT-control circuitry 104.